package com.zmn.mcc.model.entity.staff.dingtalk;

import javax.validation.Constraint;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.lang.reflect.Method;

import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Documented

public @interface DingTalkField {

    /**
     * 钉钉字段名称
     * @return
     */
    String value();

    /**
     * 钉钉字段所属组ID
     * @return
     */
    String groupId();

    /**
     * true获取lable，false获取value
     * @return
     */
    boolean lable() default true;

    /**
     * 钉钉名称转类型函数 class#method(param1,param2..)
     * @return
     */
    String convertMethod() default "";

    /**
     * 类型转钉钉名称函数 class#method(param1,param2..)
     * @return
     */
    String reverseConvertMethod() default "";

}
